<template>
  <div class="page_root" :key="queryUpdateFlag" data-page-name="检查清单列表" data-page-identification="h_6gl9ftep61">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_ovnr3rr1mj 编辑成功全局提示_cuhbg9b1up -->
      <!-- end vid_ovnr3rr1mj 编辑成功全局提示_cuhbg9b1up -->
      <!-- begin vid_ti0h6ey9k5 编辑失败全局提示_mnu9ypq3o2 -->
      <!-- end vid_ti0h6ey9k5 编辑失败全局提示_mnu9ypq3o2 -->
      <!-- begin vid_9dhsnbk3tp 删除成功全局提示_mmy9dz2q7j -->
      <!-- end vid_9dhsnbk3tp 删除成功全局提示_mmy9dz2q7j -->
      <!-- begin vid_bmh29n3avq 新建成功全局提示_7atrtwb7od -->
      <!-- end vid_bmh29n3avq 新建成功全局提示_7atrtwb7od -->
      <!-- begin vid_p1lmeb5kel 删除失败全局提示_rdcmv6za11 -->
      <!-- end vid_p1lmeb5kel 删除失败全局提示_rdcmv6za11 -->
      <!-- begin vid_qqxpnjfl9l 新建失败全局提示_2fgqe11c4p -->
      <!-- end vid_qqxpnjfl9l 新建失败全局提示_2fgqe11c4p -->
      <!-- begin vid_e55vv2sjxj 删除 -->
      <a-modal
        class="vid_e55vv2sjxj"
        v-model:visible="vid_e55vv2sjxj_props.visible"
        :centered="true"
        :title="'删除'"
        :maskClosable="false"
        :width="320"
        @cancel="handle_vid_e55vv2sjxj_cancel"
        @ok="handle_vid_e55vv2sjxj_ok"
      >
        <!-- begin vid_763oh4audy 确认删除此内容？ -->
        <span class="vid_763oh4audy"> 确认删除此内容？ </span>
        <!-- end vid_763oh4audy 确认删除此内容？ -->
      </a-modal>
      <!-- end vid_e55vv2sjxj 删除 -->
      <!-- begin vid_ddjbavkhmg 编辑检查项 -->
      <a-modal
        class="vid_ddjbavkhmg"
        v-model:visible="vid_ddjbavkhmg_props.visible"
        :centered="true"
        :title="'编辑检查项'"
        :maskClosable="false"
        :okText="'保存'"
        @cancel="handle_vid_ddjbavkhmg_cancel"
        @ok="handle_vid_ddjbavkhmg_ok"
      >
        <!-- begin vid_54bdtnjr27 表单容器_编辑检查项 -->
        <a-form class="vid_54bdtnjr27" :model="c_a0ug83mxb9" :formModel="vid_54bdtnjr27_props.formModel">
          <!-- begin vid_6xz3x0yerx 表单项容器_15eyj54e4k -->
          <a-form-item name="b_u92u01625c" :rules="c_a0ug83mxb9_rules[`b_u92u01625c`]" v-if="false" class="vid_6xz3x0yerx" :label-col='{"span":4}' :wrapper-col='{"span":20}'>
            <!-- begin vid_7q9e6sudx3 编辑_项目阶段_projectPhaseName -->
            <a-select
              class="vid_7q9e6sudx3"
              :getPopupContainer="(node) => node.parentNode"
              v-model:value="c_a0ug83mxb9.b_u92u01625c"
              :showArrow="true"
              :filterOption="false"
              :dropdownMatchSelectWidth="true"
              :searchValue="vid_7q9e6sudx3_props.searchValue"
              :selected="vid_7q9e6sudx3_props.selected"
              :options="vid_7q9e6sudx3_options()"
              @change="handle_vid_7q9e6sudx3_change"
              @search="handle_vid_7q9e6sudx3_search"
            >
            </a-select>
            <!-- end vid_7q9e6sudx3 编辑_项目阶段_projectPhaseName -->
            <template #label>
              <!-- begin vid_lzk1u25ryu 项目阶段 -->
              <span class="vid_lzk1u25ryu"> 项目阶段 </span>
              <!-- end vid_lzk1u25ryu 项目阶段 -->
            </template>
          </a-form-item>
          <!-- end vid_6xz3x0yerx 表单项容器_15eyj54e4k -->
          <!-- begin vid_up2yul7i58 表单项容器_t8y1e82607 -->
          <a-form-item name="z_6rdlf569kh" :rules="c_a0ug83mxb9_rules[`z_6rdlf569kh`]" class="vid_up2yul7i58" :label-col='{"span":4}' :wrapper-col='{"span":20}'>
            <!-- begin vid_4356iqyj6d 编辑_角色_checkCastingName -->
            <a-select
              class="vid_4356iqyj6d"
              :getPopupContainer="(node) => node.parentNode"
              v-model:value="c_a0ug83mxb9.z_6rdlf569kh"
              :showArrow="true"
              :filterOption="false"
              :dropdownMatchSelectWidth="true"
              :searchValue="vid_4356iqyj6d_props.searchValue"
              :selected="vid_4356iqyj6d_props.selected"
              :options="vid_4356iqyj6d_options()"
              @change="handle_vid_4356iqyj6d_change"
              @search="handle_vid_4356iqyj6d_search"
            >
            </a-select>
            <!-- end vid_4356iqyj6d 编辑_角色_checkCastingName -->
            <template #label>
              <!-- begin vid_k2avak01sl 部门 -->
              <span class="vid_k2avak01sl"> 部门 </span>
              <!-- end vid_k2avak01sl 部门 -->
            </template>
          </a-form-item>
          <!-- end vid_up2yul7i58 表单项容器_t8y1e82607 -->
          <!-- begin vid_sf5g7ywj7a 表单项容器_v2jf9aou03 -->
          <a-form-item name="x_6fm7c5n406" :rules="c_a0ug83mxb9_rules[`x_6fm7c5n406`]" class="vid_sf5g7ywj7a" :label-col='{"span":4}' :wrapper-col='{"span":20}'>
            <!-- begin vid_1l4gt607tg 编辑_检查项_checkEntry -->
            <a-input autocomplete="off" class="vid_1l4gt607tg" v-model:value="c_a0ug83mxb9.x_6fm7c5n406" :placeholder="'请输入'"> </a-input>
            <!-- end vid_1l4gt607tg 编辑_检查项_checkEntry -->
            <template #label>
              <!-- begin vid_y82p2egbmi 检查项 -->
              <span class="vid_y82p2egbmi"> 检查项 </span>
              <!-- end vid_y82p2egbmi 检查项 -->
            </template>
          </a-form-item>
          <!-- end vid_sf5g7ywj7a 表单项容器_v2jf9aou03 -->
        </a-form>
        <!-- end vid_54bdtnjr27 表单容器_编辑检查项 -->
      </a-modal>
      <!-- end vid_ddjbavkhmg 编辑检查项 -->
      <!-- begin vid_pigah55qkg 新建检查项 -->
      <a-modal
        class="vid_pigah55qkg"
        v-model:visible="vid_pigah55qkg_props.visible"
        :centered="true"
        :title="'新建检查项'"
        :maskClosable="false"
        :width="800"
        @cancel="handle_vid_pigah55qkg_cancel"
        @ok="handle_vid_pigah55qkg_ok"
      >
        <!-- begin vid_09oyeltabw 表单容器_476j4jlapj -->
        <a-form ref="vid_09oyeltabw_ref" class="vid_09oyeltabw" :model="r_o4qgx6bmyj" :formModel="vid_09oyeltabw_props.formModel">
          <!-- begin vid_28nq1b2smm 表单项容器_q4zkvjqeyy -->
          <a-form-item name="o_4ks6lzgiaz" :rules="r_o4qgx6bmyj_rules[`o_4ks6lzgiaz`]" class="vid_28nq1b2smm" :label-col='{"span":24}' :wrapper-col='{"span":24}'>
            <!-- begin vid_ymqc3nadzc 新建检查项-动作列表 -->
            <al-action-list
              data-field-key="o_4ks6lzgiaz"
              ref="vid_ymqc3nadzc_ref"
              class="vid_ymqc3nadzc"
              v-model:dataSource="r_o4qgx6bmyj.o_4ks6lzgiaz"
              v-model:extendDataSource="vid_ymqc3nadzc_props.dataSource"
              v-model:current="vid_ymqc3nadzc_props.current"
              v-model:currentIndex="vid_ymqc3nadzc_props.currentIndex"
            >
              <template #default="vid_ymqc3nadzc_dataItem">
                <!-- begin vid_m7hyor1trq 新建检查项_ppmChecklistList -->
                <a-row :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex" class="vid_m7hyor1trq" :slots="'12:12'">
                  <a-col :span="12">
                    <!-- begin vid_btvwfs6gzn 表单项容器_i9nx8v4rwd -->
                    <a-form-item
                      :name="setSubFormName(vid_ymqc3nadzc_dataItem,`checkCastingId`)"
                      :rules="r_o4qgx6bmyj_rules[`checkCastingId`]"
                      :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex"
                      class="vid_btvwfs6gzn"
                      :label-col='{"span":24}'
                      :wrapper-col='{"span":24}'
                    >
                      <!-- begin vid_y9392nh2cx 角色_checkCastingName -->
                      <a-select
                        :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex"
                        class="vid_y9392nh2cx"
                        :getPopupContainer="(node) => node.parentNode"
                        v-model:value="vid_ymqc3nadzc_dataItem.dataItem.checkCastingId"
                        :showArrow="true"
                        :filterOption="false"
                        :dropdownMatchSelectWidth="true"
                        :searchValue="vid_y9392nh2cx_props.searchValue"
                        :selected="vid_y9392nh2cx_props.selected"
                        :options="vid_y9392nh2cx_options()"
                        @change="handle_vid_y9392nh2cx_change"
                        @search="handle_vid_y9392nh2cx_search"
                      >
                      </a-select>
                      <!-- end vid_y9392nh2cx 角色_checkCastingName -->
                      <template #label>
                        <!-- begin vid_lxtvepuqnk 部门 -->
                        <span :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex" class="vid_lxtvepuqnk"> 部门 </span>
                        <!-- end vid_lxtvepuqnk 部门 -->
                      </template>
                    </a-form-item>
                    <!-- end vid_btvwfs6gzn 表单项容器_i9nx8v4rwd -->
                  </a-col>
                  <a-col :span="12">
                    <!-- begin vid_lq4cdlxtwl 表单项容器_11m94sxtlb -->
                    <a-form-item
                      :name="setSubFormName(vid_ymqc3nadzc_dataItem,`checkEntry`)"
                      :rules="r_o4qgx6bmyj_rules[`checkEntry`]"
                      :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex"
                      class="vid_lq4cdlxtwl"
                      :label-col='{"span":24}'
                      :wrapper-col='{"span":24}'
                    >
                      <!-- begin vid_bi2ptygamn 检查项_checkEntry -->
                      <a-input
                        autocomplete="off"
                        :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex"
                        class="vid_bi2ptygamn"
                        v-model:value="vid_ymqc3nadzc_dataItem.dataItem.checkEntry"
                        :maxlength="200"
                        :placeholder="'请输入'"
                      >
                      </a-input>
                      <!-- end vid_bi2ptygamn 检查项_checkEntry -->
                      <template #label>
                        <!-- begin vid_xmklhis2cv 简单文本_pkbj9m5mqs -->
                        <span :data-cycle-index="vid_ymqc3nadzc_dataItem.cycleIndex" class="vid_xmklhis2cv"> 检查项 </span>
                        <!-- end vid_xmklhis2cv 简单文本_pkbj9m5mqs -->
                      </template>
                    </a-form-item>
                    <!-- end vid_lq4cdlxtwl 表单项容器_11m94sxtlb -->
                  </a-col>
                </a-row>
                <!-- end vid_m7hyor1trq 新建检查项_ppmChecklistList -->
              </template>
            </al-action-list>
            <!-- end vid_ymqc3nadzc 新建检查项-动作列表 -->
          </a-form-item>
          <!-- end vid_28nq1b2smm 表单项容器_q4zkvjqeyy -->
        </a-form>
        <!-- end vid_09oyeltabw 表单容器_476j4jlapj -->
      </a-modal>
      <!-- end vid_pigah55qkg 新建检查项 -->
      <!-- begin vid_lrxsz8ple6 项目阶段 -->
      <a-modal
        class="vid_lrxsz8ple6"
        v-model:visible="vid_lrxsz8ple6_props.visible"
        :centered="true"
        :title="'项目阶段'"
        :maskClosable="false"
        :width="800"
        @cancel="handle_vid_lrxsz8ple6_cancel"
        @ok="handle_vid_lrxsz8ple6_ok"
      >
        <!-- begin vid_pbzqm0whoi 表单容器_j36xtulq1f -->
        <a-form class="vid_pbzqm0whoi" :model="m_bxh08awsmu" :formModel="vid_pbzqm0whoi_props.formModel">
          <!-- begin vid_5oj0bccjlf 表单项容器_y7mrfl26bd -->
          <a-form-item name="f_kmp3rkg2wt" :rules="m_bxh08awsmu_rules[`f_kmp3rkg2wt`]" class="vid_5oj0bccjlf" :label-col='{"span":24}' :wrapper-col='{"span":24}'>
            <!-- begin vid_xxlqbpuyg8 项目阶段-动作列表 -->
            <al-action-list
              data-field-key="f_kmp3rkg2wt"
              class="vid_xxlqbpuyg8"
              v-model:dataSource="m_bxh08awsmu.f_kmp3rkg2wt"
              v-model:extendDataSource="vid_xxlqbpuyg8_props.dataSource"
              v-model:current="vid_xxlqbpuyg8_props.current"
              v-model:currentIndex="vid_xxlqbpuyg8_props.currentIndex"
              @delete="handle_vid_xxlqbpuyg8_delete"
            >
              <template #default="vid_xxlqbpuyg8_dataItem">
                <!-- begin vid_k95gy8t3d1 布局容器_nixjowulbc -->
                <a-row :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex" class="vid_k95gy8t3d1" :slots="'12:12'">
                  <a-col :span="12">
                    <!-- begin vid_d8hn58zxa7 表单项容器_wg1z1u1t87 -->
                    <a-form-item
                      :name="setSubFormName(vid_xxlqbpuyg8_dataItem,`s_dxcrvjaihg`)"
                      :rules="m_bxh08awsmu_rules[`s_dxcrvjaihg`]"
                      :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex"
                      class="vid_d8hn58zxa7"
                      :label-col='{"span":6}'
                      :wrapper-col='{"span":18}'
                    >
                      <!-- begin vid_pyeum2dmge 下拉框_pj9l962xcz -->
                      <a-select
                        :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex"
                        class="vid_pyeum2dmge"
                        :getPopupContainer="(node) => node.parentNode"
                        v-model:value="vid_pyeum2dmge_props.value"
                        :showArrow="true"
                        :filterOption="false"
                        :placeholder="'请选择项目阶段'"
                        :searchValue="vid_pyeum2dmge_props.searchValue"
                        :selected="vid_pyeum2dmge_props.selected"
                        :options="vid_pyeum2dmge_options()"
                        @change="handle_vid_pyeum2dmge_change"
                        @search="handle_vid_pyeum2dmge_search"
                      >
                      </a-select>
                      <!-- end vid_pyeum2dmge 下拉框_pj9l962xcz -->
                      <template #label>
                        <!-- begin vid_jheb06tq01 项目阶段 -->
                        <span :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex" class="vid_jheb06tq01"> 项目阶段 </span>
                        <!-- end vid_jheb06tq01 项目阶段 -->
                      </template>
                    </a-form-item>
                    <!-- end vid_d8hn58zxa7 表单项容器_wg1z1u1t87 -->
                  </a-col>
                  <a-col :span="12">
                    <!-- begin vid_x3v0agbx8s 表单项容器_a7f07fcfnf -->
                    <a-form-item
                      :name="setSubFormName(vid_xxlqbpuyg8_dataItem,`x_1hjjc7sz2y`)"
                      :rules="m_bxh08awsmu_rules[`x_1hjjc7sz2y`]"
                      :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex"
                      class="vid_x3v0agbx8s"
                      :label-col='{"span":6}'
                      :wrapper-col='{"span":18}'
                    >
                      <!-- begin vid_jghxjpcopp 输入框_5q3g67do96 -->
                      <a-input autocomplete="off" :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex" class="vid_jghxjpcopp" v-model:value="vid_jghxjpcopp_props.value" :placeholder="'请输入排序'">
                      </a-input>
                      <!-- end vid_jghxjpcopp 输入框_5q3g67do96 -->
                      <template #label>
                        <!-- begin vid_6erfpt4nqq 排序 -->
                        <span :data-cycle-index="vid_xxlqbpuyg8_dataItem.cycleIndex" class="vid_6erfpt4nqq"> 排序 </span>
                        <!-- end vid_6erfpt4nqq 排序 -->
                      </template>
                    </a-form-item>
                    <!-- end vid_x3v0agbx8s 表单项容器_a7f07fcfnf -->
                  </a-col>
                </a-row>
                <!-- end vid_k95gy8t3d1 布局容器_nixjowulbc -->
              </template>
            </al-action-list>
            <!-- end vid_xxlqbpuyg8 项目阶段-动作列表 -->
          </a-form-item>
          <!-- end vid_5oj0bccjlf 表单项容器_y7mrfl26bd -->
        </a-form>
        <!-- end vid_pbzqm0whoi 表单容器_j36xtulq1f -->
      </a-modal>
      <!-- end vid_lrxsz8ple6 项目阶段 -->
      <!-- begin vid_dwjydcujjy 面包屑_hbiuoydz0p -->
      <a-breadcrumb class="vid_dwjydcujjy" @click="handle_vid_dwjydcujjy_click" style="word-break: break-word">
        <a-breadcrumb-item v-for="(item, index) in vid_dwjydcujjy_props_tabConfig" :key="index" @click="handleBreadcrumbJump(router, item)" href="">
          <template v-if="vid_dwjydcujjy_props.rt_showIcon">
            <span v-if="/^(https?:|mailto:|tel:|data:image)/.test(item.icon)" role="img" class="anticon"><embed style="width: 1em;height:1em;" :src="item.icon" /></span>
            <component v-else :is="item.icon" />
          </template>
          {{item.title}}
        </a-breadcrumb-item>
      </a-breadcrumb>
      <!-- end vid_dwjydcujjy 面包屑_hbiuoydz0p -->
      <!-- begin vid_4fr05rc9x9 容器_1hc4mbkn09 -->
      <al-box class="vid_4fr05rc9x9">
        <!-- begin vid_1k41ilaxw9 布局容器_xn6trazr8q -->
        <a-row class="vid_1k41ilaxw9" :slots="'12:12'">
          <a-col :span="12">
            <!-- begin vid_s2ro1sv0zd 容器_0pq4batorq -->
            <al-box class="vid_s2ro1sv0zd">
              <!-- begin vid_neyh0zi2w9 项目阶段列表 -->
              <span class="vid_neyh0zi2w9"> 项目阶段列表 </span>
              <!-- end vid_neyh0zi2w9 项目阶段列表 -->
            </al-box>
            <!-- end vid_s2ro1sv0zd 容器_0pq4batorq -->
          </a-col>
          <a-col :span="12">
            <!-- begin vid_ozsfdqofi2 容器_75kizjwgd8 -->
            <al-box class="vid_ozsfdqofi2">
              <!-- begin vid_qmenr57old 新建 -->
              <a-button class="vid_qmenr57old" @click="handle_vid_qmenr57old_click"> 新建 </a-button>
              <!-- end vid_qmenr57old 新建 -->
            </al-box>
            <!-- end vid_ozsfdqofi2 容器_75kizjwgd8 -->
          </a-col>
        </a-row>
        <!-- end vid_1k41ilaxw9 布局容器_xn6trazr8q -->
        <!-- begin vid_wd2r1saxfr 表格_3he4hrjd0l -->
        <!-- 表格_3he4hrjd0l -->
        <a-table
          class="vid_wd2r1saxfr"
          :totalNumber="vid_wd2r1saxfr_props.totalNumber"
          :bordered="true"
          :editRowSaveLoading="vid_wd2r1saxfr_props.editRowSaveLoading"
          :sorter="vid_wd2r1saxfr_props.sorter"
          :currentRow="vid_wd2r1saxfr_props.currentRow"
          :selectedRowList="vid_wd2r1saxfr_props.selectedRowList"
          :data-source="vid_wd2r1saxfr_options()"
          @change="handle_vid_wd2r1saxfr_change"
          :columns="vid_wd2r1saxfr_columns"
          :pagination="vid_wd2r1saxfr_pagination"
          row-key="id"
          @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_wd2r1saxfr')"
          sticky
          :scroll="{ x: 'max-content', scrollToFirstRowOnChange: true, }"
          :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
        >
          <template #headerCell="{ title, column }">
            <TableHeaderCell :title="title" :column="column" />
          </template>
          <template #bodyCell="{ text, column, record, index }">
            <!-- 操作列 -->
            <div v-if="column.dataIndex === 'vid_wd2r1saxfr_operation'" class="operation-cell">
              <!-- 默认分组 -->
              <span>
                <a-button type="link" @click="handle_vid_wd2r1saxfr_clickBtn_tdgmgimmsf(record)">编辑</a-button>
                <a-button type="link" @click="handle_vid_wd2r1saxfr_clickBtn_j2v839jycl(record)">删除</a-button>
              </span>
            </div>

            <!-- 序号列 -->
            <template v-if="column && column.dataIndex === 'vid_wd2r1saxfr_serialNumber'">
              {{ index + 1 }}
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"部门"} 列内容 -->
            <template v-if="column.dataIndex === 'checkCastingName' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_wd2r1saxfr_props.boundaryValueMap"
                :dataSource="vid_wd2r1saxfr_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"检查项"} 列内容 -->
            <template v-if="column.dataIndex === 'checkEntry' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_wd2r1saxfr_props.boundaryValueMap"
                :dataSource="vid_wd2r1saxfr_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"添加时间"} 列内容 -->
            <template v-if="column.dataIndex === 'createTime' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_wd2r1saxfr_props.boundaryValueMap"
                :dataSource="vid_wd2r1saxfr_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"最近更新时间"} 列内容 -->
            <template v-if="column.dataIndex === 'updateTime' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_wd2r1saxfr_props.boundaryValueMap"
                :dataSource="vid_wd2r1saxfr_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"checkEntryId"} 列内容 -->
            <template v-if="column.dataIndex === 'checkEntryId' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_wd2r1saxfr_props.boundaryValueMap"
                :dataSource="vid_wd2r1saxfr_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
          </template>
        </a-table>
        <!-- end vid_wd2r1saxfr 表格_3he4hrjd0l -->
      </al-box>
      <!-- end vid_4fr05rc9x9 容器_1hc4mbkn09 -->
    </a-spin>
  </div>
</template>
<script setup lang="tsx">
  import {
      h, ref, reactive, toRaw, markRaw, watch, computed,
      onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
    } from "vue";
    import { useRoute, useRouter } from 'vue-router';
    const router = useRouter();
    const route = useRoute();
    import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
    import { cloneDeep, localGet, merge, getDifferenceArray, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle, permission, getComponentParamsValue } from '@/utils/index';
    import { isNullOrEmpty, isEmptyArr, isNullOrUnDef, isContained, isArray, isEmpty, isObject } from '@/utils/is';
    import dayjs from 'dayjs';
    import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
    import { message, notification, Modal } from 'ant-design-vue'
    import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate, parseSubFromDataList } from '@/utils/format';
    import colorTheme from '@/design/custom-theme.json';
    
    import UserTableRecords from '@/model/UserTableRecords';
    import { getAppBaseUrl } from '@/utils/index';
    import { sendToken } from "@/hooks/useIframeToken";
    import { useSystemStore } from "@/store/modules/system";
    const systemStore = useSystemStore();
    

  import TextTableCell from '@/components/page/tableCell/text.vue';
  import TooltipTableCell from '@/components/page/tableCell/tooltip.vue';
  import NumberTableCell from '@/components/page/tableCell/number.vue';
  import ProgressTableCell from '@/components/page/tableCell/progress.vue';
  import OptionsTableCell from '@/components/page/tableCell/options.vue';
  import MultipleOptionsTableCell from '@/components/page/tableCell/multipleOptions.vue';
  import DatePickerTableCell from '@/components/page/tableCell/datePicker.vue';
  import RangePickerTableCell from '@/components/page/tableCell/rangePicker.vue';
  import RangeNumberTableCell from '@/components/page/tableCell/rangeNumber.vue';
  import BoolTableCell from '@/components/page/tableCell/bool.vue';
  import TableHeaderCell from '@/components/page/TableHeaderCell.vue';

      // 获取传入的流程ID和组件参数
      const props = defineProps({
            'processInstanceId': {
            type: [String,Number,Boolean],
            default: undefined,
        },
      })
      const immediateWatch = (source, callback) => {
        watch(source, callback, {deep: true,immediate: true })
      }



  /* -------------------------- 属性定义 -------------------------- */

      const setTimeOutList = [];
      const pageLoading = reactive({
        loading: false,
        tip: undefined
      });
      const authInfo = localGet('app-user-store');

    const vid_ovnr3rr1mj_props = reactive({
          show: false,
      type: "success",
      content: "修改成功",
      duration: 3,
  })

    const vid_ti0h6ey9k5_props = reactive({
          show: false,
      type: "error",
      content: "修改失败",
      duration: 3,
  })

    const vid_9dhsnbk3tp_props = reactive({
          show: false,
      type: "success",
      content: "删除成功",
      duration: 3,
  })

    const vid_bmh29n3avq_props = reactive({
          show: false,
      type: "success",
      content: "新建成功",
      duration: 3,
  })

    const vid_p1lmeb5kel_props = reactive({
          show: false,
      type: "error",
      content: "删除失败",
      duration: 3,
  })

    const vid_qqxpnjfl9l_props = reactive({
          show: false,
      type: "error",
      content: undefined,
      duration: 3,
  })

    const vid_e55vv2sjxj_props = reactive({
          visible: false,
      confirmLoading: undefined,
  })

    const vid_ddjbavkhmg_props = reactive({
          visible: false,
      confirmLoading: undefined,
  })

    const vid_54bdtnjr27_props = reactive({
          formModel: {"b_u92u01625c":"","z_6rdlf569kh":"","x_6fm7c5n406":""},
  })

    const vid_7q9e6sudx3_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: undefined,
  })

    const vid_4356iqyj6d_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: undefined,
  })

    const vid_1l4gt607tg_props = reactive({
          value: undefined,
  })

    const vid_pigah55qkg_props = reactive({
          visible: false,
      confirmLoading: undefined,
  })

    const vid_09oyeltabw_props = reactive({
          formModel: {"o_4ks6lzgiaz":"","checkEntry":"","checkCastingId":""},
  })

    const vid_ymqc3nadzc_props = reactive({
          dataSource: [{"checkEntry":"","projectPhaseId":"","checkCastingId":""}],
      current: {"checkEntry":"","projectPhaseId":"","checkCastingId":""},
      currentIndex: -1,
  })

    const vid_bi2ptygamn_props = reactive({
          value: undefined,
  })

    const vid_y9392nh2cx_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: undefined,
  })

    const vid_lrxsz8ple6_props = reactive({
          visible: false,
      confirmLoading: undefined,
  })

    const vid_pbzqm0whoi_props = reactive({
          formModel: {"f_kmp3rkg2wt":"","x_1hjjc7sz2y":"","s_dxcrvjaihg":""},
  })

    const vid_xxlqbpuyg8_props = reactive({
          dataSource: [{"checkEntry":"","checkEntryId":-1,"projectPhaseId":-1,"createTime":"","checkCastingName":"","projectPhaseName":"","checkCastingId":-1,"updateTime":"","milepostId":-1}],
      current: {"checkEntry":"","checkEntryId":-1,"projectPhaseId":-1,"createTime":"","checkCastingName":"","projectPhaseName":"","checkCastingId":-1,"updateTime":"","milepostId":-1},
      currentIndex: -1,
  })

    const vid_jghxjpcopp_props = reactive({
          value: undefined,
  })

    const vid_pyeum2dmge_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: undefined,
  })

    const vid_dwjydcujjy_props = reactive({
          rt_showIcon: false,
  })

    const vid_wd2r1saxfr_props = reactive({
          systemSort: [],
      sorter: {},
      editRowSaveLoading: {},
      currentRow: {"checkCastingName":"","checkEntry":"","createTime":"","updateTime":"","checkEntryId":""},
      selectedRowList: {"checkEntry":[],"checkEntryId":[],"createTime":[],"projectPhaseName":[],"checkCastingName":[],"custom3":[],"custom4":[],"updateTime":[],"custom1":[],"custom2":[]},
      totalNumber: undefined,
      rt_tableConfig: {"layout":{"showHeader":true,"sticky":true,"operationColumnFixed":"right"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":true,"showTotal":true,"hideOnSinglePage":false,"pageSize":"12","simple":false,"sync":true,"showQuickJumper":true,"showSizeChanger":false},"scroll":{"x":"max-content","y":"","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\"","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"#FFFFFF","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\"","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
      columnList: [
          {
            id: 'a3066zllo3',
            dataIndex: 'checkCastingName',
            headerComment: false,
            title: '部门',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'q5efs2mtj6',
            dataIndex: 'checkEntry',
            headerComment: false,
            title: '检查项',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            width: '800px',
            resizable: true,
          },
          {
            id: '4pfekp2z2a',
            dataIndex: 'createTime',
            headerComment: false,
            title: '添加时间',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'alc4969k03',
            dataIndex: 'updateTime',
            headerComment: false,
            title: '最近更新时间',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            dataIndex: 'vid_wd2r1saxfr_operation',
            title: '操作',
            fixed: 'right',
          },
        ],
      rawColumnList: [],
      // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
      rowMergeSort: [],
      // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
      systemSort: [],
      // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
      boundaryValueMap: {},
      // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
      contentDataSource: {},
  })
  // ---------------------------- 定义模型数据 ----------------------------

    const c_a0ug83mxb9 = reactive({})


    const r_o4qgx6bmyj = reactive({"o_4ks6lzgiaz":[{}]})


    const m_bxh08awsmu = reactive({"f_kmp3rkg2wt":[{}]})

    // ============================ 定义模型数据 ============================




    const c_a0ug83mxb9_rules = reactive({
          b_u92u01625c: [
          { required: true, message: '请选择项目阶段!', trigger: 'blur' },
      ],
      z_6rdlf569kh: [
          { required: true, message: '请选择部门!', trigger: 'blur' },
      ],
      x_6fm7c5n406: [
          { required: true, message: '检查项!', trigger: 'blur' },
      ],
    })





    const r_o4qgx6bmyj_rules = reactive({

      checkEntry: [
          { required: true, message: '请输入检查项!', trigger: 'blur' },
          {pattern: new RegExp("^[\\S]*$"), message: '请输入汉字、字母、数字、下划线', trigger: 'blur'},
      ],
      checkCastingId: [
          { required: true, message: '请选择部门!', trigger: 'blur' },
      ],
    })






    const m_bxh08awsmu_rules = reactive({

      x_1hjjc7sz2y: [
          { required: true, message: '请输入排序!', trigger: 'blur' },
          {pattern: new RegExp("^[\\S]*$"), message: '请输入汉字、字母、数字、下划线', trigger: 'blur'},
      ],
      s_dxcrvjaihg: [
          { required: true, message: '请选择项目阶段!', trigger: 'blur' },
          {pattern: new RegExp("^[\\S]*$"), message: '请输入汉字、字母、数字、下划线', trigger: 'blur'},
      ],
    })


      // 处理校验
      const setSubFormName =(parentInfo, name)=>{
        return [parentInfo.parents, parentInfo.cycleIndex, name];
      }


    const vid_7q9e6sudx3_options_raw = ref([])

      const vid_7q9e6sudx3_options = computed(() => {
        return (dataSource = vid_7q9e6sudx3_options_raw.value)=>{
          return (dataSource || []).map(item => {
            return {
              ...item,
              value: item.projectPhaseId,
          disabled: !!item.disabled,
          label: item.projectPhaseName
            }
          })
        }
      })



    const vid_4356iqyj6d_options_raw = ref([{"label":"交付部","value":"1"},{"label":"产品部","value":"2"},{"label":"解决方案","value":"3"},{"label":"销售部","value":"4"},{"label":"售前部","value":"5"},{"label":"财务","value":"6"},{"label":"平台研发部","value":"7"}])

      const vid_4356iqyj6d_options = computed(() => {
            return () => vid_4356iqyj6d_options_raw.value
          })



    const vid_y9392nh2cx_options_raw = ref([{"label":"交付部","value":"1"},{"label":"产品部","value":"2"},{"label":"解决方案","value":"3"},{"label":"销售部","value":"4"},{"label":"售前部","value":"5"},{"label":"财务","value":"6"},{"label":"平台研发部","value":"7"}])

      const vid_y9392nh2cx_options = computed(() => {
            return () => vid_y9392nh2cx_options_raw.value
          })



    const vid_pyeum2dmge_options_raw = ref([{"label":"option1","value":"1"},{"label":"option2","value":"2"}])

      const vid_pyeum2dmge_options = computed(() => {
            return () => vid_pyeum2dmge_options_raw.value
          })



    const vid_wd2r1saxfr_options_raw = ref([])

      const vid_wd2r1saxfr_options = computed(() => {
        return () => vid_wd2r1saxfr_options_raw.value
      })

  // 图表组件 编辑_项目阶段_projectPhaseName 条件格式数据依赖
  const vid_7q9e6sudx3_chartConditionDependencyMap = ref({
  })
  // 图表组件 编辑_角色_checkCastingName 条件格式数据依赖
  const vid_4356iqyj6d_chartConditionDependencyMap = ref({
  })
  // 图表组件 角色_checkCastingName 条件格式数据依赖
  const vid_y9392nh2cx_chartConditionDependencyMap = ref({
  })
  // 图表组件 下拉框_pj9l962xcz 条件格式数据依赖
  const vid_pyeum2dmge_chartConditionDependencyMap = ref({
  })
  // 图表组件 表格_3he4hrjd0l 条件格式数据依赖
  const vid_wd2r1saxfr_chartConditionDependencyMap = ref({
  })
  /* ========================== 属性定义 ========================== */


  /* -------------------------- 元素数据引用 -------------------------- */
  // 组件 表单容器_476j4jlapj ref 的引用
  const vid_09oyeltabw_ref = ref(null);
  // 组件 新建检查项-动作列表 ref 的引用
  const vid_ymqc3nadzc_ref = ref(null);

  /* ========================== 元素数据引用 ========================== */


  /* -------------------------- 页面数据 -------------------------- */

    // 页面数据 新增检查项(72)
    const dataConnector_conn_xkjqpfw0qy_response = ref();
    const dataConnector_conn_xkjqpfw0qy = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            checkEntry: null,
          checkEntryId: null,
          role: null,
          checkCastingName: null,
          projectPhaseName: null,
          pageSize: null,
          milepostId: null,
          delFlag: null,
          projectPhaseId: pageParameter_state.project_phase_id,
          updateBy: null,
          pageNo: null,
          ppmChecklistList: vid_ymqc3nadzc_props?.dataSource,
          checkCastingId: null
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/checklist/add/PpmCheckItem';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_xkjqpfw0qy_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 查询检查清单信息
    const dataConnector_conn_zo10nfnd80_response = ref();
    const dataConnector_conn_zo10nfnd80 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            checkEntry: null,
          checkEntryId: null,
          role: null,
          checkCastingName: null,
          projectPhaseName: null,
          projectType: null,
          pageSize: vid_wd2r1saxfr_props?.rt_tableConfig.pagination.pageSize,
          milepostId: null,
          delFlag: null,
          projectPhaseId: pageParameter_state.project_phase_id,
          updateBy: null,
          pageNo: vid_wd2r1saxfr_props?.rt_tableConfig.pagination.current,
          ppmChecklistList: null,
          checkCastingId: null
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/checklist/queryPpmChecklistList';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_zo10nfnd80_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 编辑检查信息清单
    const dataConnector_conn_y611gy0zk3_response = ref();
    const dataConnector_conn_y611gy0zk3 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            checkEntry: c_a0ug83mxb9.x_6fm7c5n406,
          checkEntryId: vid_wd2r1saxfr_props?.currentRow.checkEntryId,
          role: null,
          checkCastingName: null,
          projectPhaseName: null,
          pageSize: null,
          milepostId: null,
          delFlag: null,
          projectPhaseId: null,
          updateBy: null,
          pageNo: null,
          ppmChecklistList: null,
          checkCastingId: vid_4356iqyj6d_props?.selected.value
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/checklist/updatePpmChecklist';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_y611gy0zk3_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 删除
    const dataConnector_conn_ltg8t69txc_response = ref();
    const dataConnector_conn_ltg8t69txc = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            checkEntry: null,
          checkEntryId: vid_wd2r1saxfr_props?.currentRow.checkEntryId,
          role: null,
          checkCastingName: null,
          projectPhaseName: null,
          pageSize: null,
          milepostId: null,
          delFlag: 1,
          projectPhaseId: null,
          updateBy: null,
          pageNo: null,
          ppmChecklistList: null,
          checkCastingId: null
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/checklist/updatePpmChecklist';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_ltg8t69txc_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


  /* ========================== 页面数据 ========================== */



  /* -------------------------- 响应 -------------------------- */

    // 页面交互 检查清单管理页面
    const response_t2uo3t36ou = async () => {

    const query = {

    };
    let appBaseUrl = '';
    
    appBaseUrl = getAppBaseUrl()
    
    const jumpInfo = {
      path: `${appBaseUrl}/app_50000005/page/50000503`, // 跳转地址
      query
    };
    const routeUrl = router.resolve(jumpInfo);
    let url = routeUrl.href;
    // 判断是否是MicroApp的子应用
    const microAppData = window.microApp?.getData() ?? window.eventCenterForViteApp?.getData();
    if (microAppData) {
      const urlList = []
      Object.keys(jumpInfo.query).forEach(item=>{
        urlList.push(item + '=' + jumpInfo.query[item]);
      })
      // 判断要跳转的地址是否是用户自定义输入的
      const customJumpPath = jumpInfo.path;

      // 自定义跳转页面不是其他平台的菜单，则直接使用全路径
       if (customJumpPath.indexOf('/allin-app/') !== -1) {
        // 目标页面是其他平台的菜单
        const realPath = customJumpPath.split('/allin-app/').pop()
        // 兼容二级域名情况
        let jumpPath = (microAppData.baseroute ?? '/allin-app') + '/' + realPath
        // 配置有参数，需要加参数添加到路由后面
        if(urlList.length) {
          // 跳转的路径本身带有参数
          if(jumpPath.indexOf('?') !== -1) {
            jumpPath += '&' + urlList.join("&");
          } else {
            jumpPath += '?'+ urlList.join("&");
          }
        }
        url = location.origin + jumpPath;
      } else {
        // 目标页面就是低代码项目本身的页面
        if(location.href.indexOf('/allin-app/') > -1) {
          url = location.origin + location.pathname.split("/allin-app/").shift() + '/allin-app'+ url;
        } else {
          url = location.origin + '/allin-app'+ url;
        }
      }
    }
    // 打开新窗口

      if (microAppData) {
        window.location.href = url;
      } else {
        router.push(jumpInfo);
      }


    }


    // 页面交互 编辑交互
    const response_cbq1y96ran = async () => {

    const branchList = [{
          conditionType: 'EQUALS',
          value: 'success',
          exec: async () => {
              vid_ovnr3rr1mj_props.show = true;
          }
      },{
          conditionType: 'EQUALS',
          value: 'fail',
          exec: async () => {
              vid_ti0h6ey9k5_props.show = true;
          }
      }];

    const matchBranch = branchList.find(item => checkCaseCondition(dataConnector_conn_y611gy0zk3_response?.value?.message, item.conditionType, item.value));
    // 匹配到的分支
    if (matchBranch) {
      matchBranch.exec();
      return;
    }
    // 默认分支动作


    }


    // 页面交互 删除交互
    const response_a5gmnr4nx8 = async () => {

    const branchList = [{
          conditionType: 'EQUALS',
          value: 'success',
          exec: async () => {
              vid_9dhsnbk3tp_props.show = true;
          }
      },{
          conditionType: 'EQUALS',
          value: 'fail',
          exec: async () => {
              vid_p1lmeb5kel_props.show = true;
          }
      }];

    const matchBranch = branchList.find(item => checkCaseCondition(dataConnector_conn_ltg8t69txc_response?.value?.status, item.conditionType, item.value));
    // 匹配到的分支
    if (matchBranch) {
      matchBranch.exec();
      return;
    }
    // 默认分支动作


    }


    // 页面交互 新建交互
    const response_b7edp1rb9y = async () => {

    const branchList = [{
          conditionType: 'EQUALS',
          value: 200,
          exec: async () => {
              vid_bmh29n3avq_props.show = true;
  vid_pigah55qkg_props.visible = false;
      // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
    try {
  await vid_09oyeltabw_ref.value?.resetFields();
    } catch (error) { console.log(error);}
      // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
   vid_ymqc3nadzc_ref.value?.reset();
  await dataConnector_conn_zo10nfnd80()
          }
      },{
          conditionType: 'NOT_EQUALS',
          value: 200,
          exec: async () => {
              vid_qqxpnjfl9l_props.show = true;
          }
      }];

    const matchBranch = branchList.find(item => checkCaseCondition(dataConnector_conn_xkjqpfw0qy_response?.value?.code, item.conditionType, item.value));
    // 匹配到的分支
    if (matchBranch) {
      matchBranch.exec();
      return;
    }
    // 默认分支动作


    }

  /* ========================== 响应 ========================== */


  /* -------------------------- 函数 -------------------------- */

  /* ========================== 函数 ========================== */


  /* -------------------------- 页面参数 -------------------------- */

    const pageParameter_state = reactive({
        'processInstanceId': props.processInstanceId ?? route.query.processInstanceId,
      'project_phase_id': undefined,
    })

  /* ========================== 页面参数 ========================== */


  /* -------------------------- 组件事件处理方法 -------------------------- */

    // ---------------------------- 组件数据同步 ----------------------------
    // 处理 新建失败全局提示_2fgqe11c4p 的 content 属性关联
  watch(() => dataConnector_conn_xkjqpfw0qy_response?.value?.message,
    () => {
      let dataList = dataConnector_conn_xkjqpfw0qy_response?.value?.message

      vid_qqxpnjfl9l_props.content = dataList;
    },
    {deep: true})
  // 处理 编辑_项目阶段_projectPhaseName 的 value 属性关联
  immediateWatch(
    () => vid_wd2r1saxfr_props?.currentRow.projectPhaseName,
    () => { c_a0ug83mxb9.b_u92u01625c = vid_wd2r1saxfr_props?.currentRow.projectPhaseName; }
  )
  // 处理 编辑_角色_checkCastingName 的 value 属性关联
  immediateWatch(
    () => vid_wd2r1saxfr_props?.currentRow.checkCastingName,
    () => { c_a0ug83mxb9.z_6rdlf569kh = vid_wd2r1saxfr_props?.currentRow.checkCastingName; }
  )
  // 处理 编辑_检查项_checkEntry 的 value 属性关联
  immediateWatch(
    () => vid_wd2r1saxfr_props?.currentRow.checkEntry,
    () => { c_a0ug83mxb9.x_6fm7c5n406 = vid_wd2r1saxfr_props?.currentRow.checkEntry; }
  )
  // 处理 表格_3he4hrjd0l 的 systemList 属性关联
  watch(() => dataConnector_conn_zo10nfnd80_response?.value?.dataList,
    () => {
      let dataList = dataConnector_conn_zo10nfnd80_response?.value?.dataList

      // 处理零代码生成的表格数据，将dataList展开
      const data = dataConnector_conn_zo10nfnd80_response?.value;
      if (data && 'dataList' in data && 'columnList' in data) {
        const newDataList = parseSubFromDataList(dataList);
        if (newDataList.length) {
          dataList = newDataList;
        }
      }

      vid_wd2r1saxfr_options_raw.value = dataList;
    },
    {deep: true})
  // 处理 表格_3he4hrjd0l 的 totalNumber 属性关联
  watch(() => dataConnector_conn_zo10nfnd80_response?.value?.totalElements,
    () => {
      let dataList = dataConnector_conn_zo10nfnd80_response?.value?.totalElements

      vid_wd2r1saxfr_props.totalNumber = dataList;
    },
    {deep: true})
    // ============================ 组件数据同步 ============================

  /**
  * 处理元素 对话框 的 cancel 事件
  */
  let handle_vid_e55vv2sjxj_cancel = throttle(async (...params) => {
  vid_e55vv2sjxj_props.visible = false;
  }, 500)
  /**
  * 处理元素 对话框 的 ok 事件
  */
  let handle_vid_e55vv2sjxj_ok = throttle(async (...params) => {
  vid_e55vv2sjxj_props.visible = false;
  await dataConnector_conn_ltg8t69txc()
  response_a5gmnr4nx8()
  await dataConnector_conn_zo10nfnd80()
  }, 500)
  /**
  * 处理元素 对话框 的 cancel 事件
  */
  let handle_vid_ddjbavkhmg_cancel = throttle(async (...params) => {
  vid_ddjbavkhmg_props.visible = false;
  }, 500)
  /**
  * 处理元素 对话框 的 ok 事件
  */
  let handle_vid_ddjbavkhmg_ok = throttle(async (...params) => {
  vid_ddjbavkhmg_props.visible = false;
  await dataConnector_conn_y611gy0zk3()
  response_cbq1y96ran()
  await dataConnector_conn_zo10nfnd80()
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_7q9e6sudx3_change = throttle(async (...params) => {
  const [,option] = params;
  vid_7q9e6sudx3_props.selected.label = option?.label;
  vid_7q9e6sudx3_props.selected.value = option?.value;
  vid_7q9e6sudx3_props.selected.option = option;
  vid_7q9e6sudx3_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_7q9e6sudx3_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_7q9e6sudx3_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_4356iqyj6d_change = throttle(async (...params) => {
  const [,option] = params;
  vid_4356iqyj6d_props.selected.label = option?.label;
  vid_4356iqyj6d_props.selected.value = option?.value;
  vid_4356iqyj6d_props.selected.option = option;
  vid_4356iqyj6d_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_4356iqyj6d_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_4356iqyj6d_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 对话框 的 cancel 事件
  */
  let handle_vid_pigah55qkg_cancel = throttle(async (...params) => {
  vid_pigah55qkg_props.visible = false;
  // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
  vid_ymqc3nadzc_ref.value?.reset();
  }, 500)
  /**
  * 处理元素 对话框 的 ok 事件
  */
  let handle_vid_pigah55qkg_ok = throttle(async (...params) => {
  // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
  await vid_09oyeltabw_ref.value?.validate();
  await dataConnector_conn_xkjqpfw0qy()
  response_b7edp1rb9y()
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_y9392nh2cx_change = throttle(async (...params) => {
  const [,option] = params;
  vid_y9392nh2cx_props.selected.label = option?.label;
  vid_y9392nh2cx_props.selected.value = option?.value;
  vid_y9392nh2cx_props.selected.option = option;
  vid_y9392nh2cx_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_y9392nh2cx_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_y9392nh2cx_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 对话框 的 cancel 事件
  */
  let handle_vid_lrxsz8ple6_cancel = throttle(async (...params) => {
  vid_lrxsz8ple6_props.visible = false;
  }, 500)
  /**
  * 处理元素 对话框 的 ok 事件
  */
  let handle_vid_lrxsz8ple6_ok = throttle(async (...params) => {
  }, 500)
  /**
  * 处理元素 动作列表 的 delete 事件
  */
  let handle_vid_xxlqbpuyg8_delete = throttle(async (...params) => {
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_pyeum2dmge_change = throttle(async (...params) => {
  const [,option] = params;
  vid_pyeum2dmge_props.selected.label = option?.label;
  vid_pyeum2dmge_props.selected.value = option?.value;
  vid_pyeum2dmge_props.selected.option = option;
  vid_pyeum2dmge_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_pyeum2dmge_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_pyeum2dmge_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 面包屑 的 click 事件
  */
  let handle_vid_dwjydcujjy_click = throttle(async (...params) => {
  response_t2uo3t36ou()
  }, 500)
  /**
  * 处理元素 按钮 的 click 事件
  */
  let handle_vid_qmenr57old_click = throttle(async (...params) => {
  vid_pigah55qkg_props.visible = true;
  }, 500)
  /**
  * 处理元素 表格 的 clickBtn_tdgmgimmsf 事件
  */
  let handle_vid_wd2r1saxfr_clickBtn_tdgmgimmsf = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_wd2r1saxfr_props.currentRow = record;
  vid_ddjbavkhmg_props.visible = true;
  }, 500)
  /**
  * 处理元素 表格 的 clickBtn_j2v839jycl 事件
  */
  let handle_vid_wd2r1saxfr_clickBtn_j2v839jycl = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_wd2r1saxfr_props.currentRow = record;
  vid_e55vv2sjxj_props.visible = true;
  }, 500)
  /**
  * 处理元素 表格 的 change 事件
  */
  let handle_vid_wd2r1saxfr_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_wd2r1saxfr_props.rt_tableConfig.pagination.current = current;
  vid_wd2r1saxfr_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_wd2r1saxfr_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
  sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
  sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_wd2r1saxfr_props.systemSort = sorterList;
  vid_wd2r1saxfr_props.sorter = sorterValue;
  await dataConnector_conn_zo10nfnd80()
  }, 500)
  /**
  * 处理元素 表格 的 clickBtn_cpdcd44mua 事件
  */
  let handle_vid_wd2r1saxfr_clickBtn_cpdcd44mua = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_wd2r1saxfr_props.currentRow = record;
  }, 500)
  /**
  * 处理元素 表格 的 clickBtn_2aibg08ay2 事件
  */
  let handle_vid_wd2r1saxfr_clickBtn_2aibg08ay2 = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_wd2r1saxfr_props.currentRow = record;
  }, 500)
  /**
  * 处理元素 表格 的 clickBtn_xt3e7k6skf 事件
  */
  let handle_vid_wd2r1saxfr_clickBtn_xt3e7k6skf = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_wd2r1saxfr_props.currentRow = record;
  }, 500)
  /* ========================== 组件事件处理方法 ========================== */


  /* -------------------------- 生命周期 -------------------------- */
  // 用于参数变更后重新执行自定义指令
      const queryUpdateFlag = ref(0);

        const pageParams = [{"dataType":"STRING","name":"project_phase_id","dependencies":[{"sourceType":"dataConnector","propertyChain":"project_phase_id","dataConnector":{"vid":"conn_xkjqpfw0qy","type":"request","paramLink":"projectPhaseId"}},{"sourceType":"dataConnector","propertyChain":"project_phase_id","dataConnector":{"vid":"conn_zo10nfnd80","type":"request","paramLink":"projectPhaseId"}}]}];
        let setPageParams = ()=>{
          pageParams.forEach(param => {
            strategyMap[param.dataType](param, route.query[param.name])
          })
        }
      const strategyMap = {
        STRING: (param, paramValue) => {
          if (typeof paramValue === 'undefined') {
            pageParameter_state[param.name] = undefined
            return
          }
          pageParameter_state[param.name] = paramValue;
        },
        BOOLEAN: (param, paramValue) => {
          if (typeof paramValue === 'undefined') {
            pageParameter_state[param.name] = undefined
            return
          }
          if('true' === (paramValue || '').toLowerCase()) {
            pageParameter_state[param.name] = true
          } else if('false' === (paramValue || '').toLowerCase()) {
            pageParameter_state[param.name] = false
          } else {
            message.error('参数传入错误！类型不匹配！');
          }
        },
        NUMBER: (param, paramValue) => {
          if (typeof paramValue === 'undefined') {
            pageParameter_state[param.name] = undefined
            return
          }
          if (!isNaN(paramValue)) {
            pageParameter_state[param.name] = Number(paramValue);
          } else {
            message.error('参数传入错误！类型不匹配！');
          }
        },
        ARRAY: (param, paramValue) => {
          if (typeof paramValue === 'undefined') {
            pageParameter_state[param.name] = undefined
            return
          }
          if (isNullOrUnDef(paramValue)  || !paramValue || paramValue=== 'undefined') {
            pageParameter_state[param.name] = [];
          } else if(paramValue.trim().startsWith('[') && paramValue.trim().endsWith(']')) {
            try {
              pageParameter_state[param.name] = JSON.parse(decodeURI(paramValue));
            } catch (error) {
              console.error('参数解析失败 ',error);
              message.error('参数解析失败 ',error);
            }
          } else {
            console.error('参数传入错误！类型不匹配！');
            message.error('参数传入错误！类型不匹配！');
          }
        },
      };
      
      immediateWatch(
        () => route.query,
        () => {
          setPageParams();
          queryUpdateFlag.value++;
          dataConnector_conn_zo10nfnd80()
        }
      )
      
      onMounted(() => {setPageParams() ;dataConnector_conn_zo10nfnd80()

    });

    onUnmounted(() => {
      // 销毁定时器
      setTimeOutList.forEach(({ repeat, timer }) => {
        repeat ?  clearInterval(timer): clearTimeout(timer);
      });
    });

  /* ========================== 生命周期 ========================== */


  /* -------------------------- 数据关联处理 -------------------------- */

      // 处理 编辑成功全局提示_cuhbg9b1up 全局消息
        immediateWatch(
            () => vid_ovnr3rr1mj_props.show,
            () => {
                if (vid_ovnr3rr1mj_props.show) {
                    message[vid_ovnr3rr1mj_props.type](vid_ovnr3rr1mj_props.content, vid_ovnr3rr1mj_props.duration, () => {
                        vid_ovnr3rr1mj_props.show = false
                    })
                }
            }
        )
  // 处理 编辑失败全局提示_mnu9ypq3o2 全局消息
        immediateWatch(
            () => vid_ti0h6ey9k5_props.show,
            () => {
                if (vid_ti0h6ey9k5_props.show) {
                    message[vid_ti0h6ey9k5_props.type](vid_ti0h6ey9k5_props.content, vid_ti0h6ey9k5_props.duration, () => {
                        vid_ti0h6ey9k5_props.show = false
                    })
                }
            }
        )
  // 处理 删除成功全局提示_mmy9dz2q7j 全局消息
        immediateWatch(
            () => vid_9dhsnbk3tp_props.show,
            () => {
                if (vid_9dhsnbk3tp_props.show) {
                    message[vid_9dhsnbk3tp_props.type](vid_9dhsnbk3tp_props.content, vid_9dhsnbk3tp_props.duration, () => {
                        vid_9dhsnbk3tp_props.show = false
                    })
                }
            }
        )
  // 处理 新建成功全局提示_7atrtwb7od 全局消息
        immediateWatch(
            () => vid_bmh29n3avq_props.show,
            () => {
                if (vid_bmh29n3avq_props.show) {
                    message[vid_bmh29n3avq_props.type](vid_bmh29n3avq_props.content, vid_bmh29n3avq_props.duration, () => {
                        vid_bmh29n3avq_props.show = false
                    })
                }
            }
        )
  // 处理 删除失败全局提示_rdcmv6za11 全局消息
        immediateWatch(
            () => vid_p1lmeb5kel_props.show,
            () => {
                if (vid_p1lmeb5kel_props.show) {
                    message[vid_p1lmeb5kel_props.type](vid_p1lmeb5kel_props.content, vid_p1lmeb5kel_props.duration, () => {
                        vid_p1lmeb5kel_props.show = false
                    })
                }
            }
        )
  // 处理 新建失败全局提示_2fgqe11c4p 全局消息
        immediateWatch(
            () => vid_qqxpnjfl9l_props.show,
            () => {
                if (vid_qqxpnjfl9l_props.show) {
                    message[vid_qqxpnjfl9l_props.type](vid_qqxpnjfl9l_props.content, vid_qqxpnjfl9l_props.duration, () => {
                        vid_qqxpnjfl9l_props.show = false
                    })
                }
            }
        )



  /* -------------------------- 表单数据同步 -------------------------- */
  /* ========================== 表单数据同步 ========================== */

  /* ========================== 数据关联处理 ========================== */


  /* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */
  immediateWatch(
    () => [c_a0ug83mxb9?.b_u92u01625c, vid_7q9e6sudx3_options?.value()],
    () => {
      if(!!handle_vid_7q9e6sudx3_change) {
      const options = (vid_7q9e6sudx3_options?.value() || []).find((item) => item.value === c_a0ug83mxb9?.b_u92u01625c || item.label === c_a0ug83mxb9?.b_u92u01625c )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_7q9e6sudx3_change(c_a0ug83mxb9?.b_u92u01625c, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [c_a0ug83mxb9?.z_6rdlf569kh, vid_4356iqyj6d_options?.value()],
    () => {
      if(!!handle_vid_4356iqyj6d_change) {
      const options = (vid_4356iqyj6d_options?.value() || []).find((item) => item.value === c_a0ug83mxb9?.z_6rdlf569kh || item.label === c_a0ug83mxb9?.z_6rdlf569kh )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_4356iqyj6d_change(c_a0ug83mxb9?.z_6rdlf569kh, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [r_o4qgx6bmyj?.checkCastingId, vid_y9392nh2cx_options?.value()],
    () => {
      if(!!handle_vid_y9392nh2cx_change) {
      const options = (vid_y9392nh2cx_options?.value() || []).find((item) => item.value === r_o4qgx6bmyj?.checkCastingId || item.label === r_o4qgx6bmyj?.checkCastingId )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_y9392nh2cx_change(r_o4qgx6bmyj?.checkCastingId, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [m_bxh08awsmu?.s_dxcrvjaihg, vid_pyeum2dmge_options?.value()],
    () => {
      if(!!handle_vid_pyeum2dmge_change) {
      const options = (vid_pyeum2dmge_options?.value() || []).find((item) => item.value === m_bxh08awsmu?.s_dxcrvjaihg || item.label === m_bxh08awsmu?.s_dxcrvjaihg )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_pyeum2dmge_change(m_bxh08awsmu?.s_dxcrvjaihg, {...options} || {})
      }
    }
  )
  const vid_dwjydcujjy_props_tabConfig = computed(() => {
   const initValue = [{"parameter":[],"icon":"","title":"检查清单管理","applicationId":50000005,"key":"tab1","targetPage":{"customUrl":"","modelId":50000503,"settingType":"PAGE_LIST","url":"/app_50000005/page/50000503"},"query":{}},{"parameter":[],"icon":"","title":"详情页","applicationId":50000005,"key":"tab2","targetPage":{"customUrl":"","modelId":3000000064,"settingType":"PAGE_LIST","url":"/app_50000005/page/3000000064"},"query":{}}];
  return initValue;
  })
  
  systemStore.addBreadcrumbInfo(vid_dwjydcujjy_props_tabConfig.value);
  
  onMounted(() => {
    const rawColumnList = []
    traversalTreeStructure(vid_wd2r1saxfr_props.columnList, (node) => {
      if (node.type === 'column') {
        rawColumnList.push(node)
      }
    });
    
    // 获取缓存的表格列宽度，处理列宽信息
    UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
      const columnWidthMap = res['vid_wd2r1saxfr'] ?? {};
      rawColumnList.map((column) => {
        if(columnWidthMap[column.dataIndex]) {
          column.width = columnWidthMap[column.dataIndex]
        }
      })
    });
    
    vid_wd2r1saxfr_props.rawColumnList = rawColumnList;
  })
  // 生成表格列：相同分组的数据需要合并单元格
  const vid_wd2r1saxfr_columns = computed(() => {
    // 需要合并单元格的列
    const groupKeys = [];

    // 将表头配置按照groupTitle字段进行分组，以实现多级表头
    const columnList = [...vid_wd2r1saxfr_props.columnList];
    function formatColumns(columns) {
      columns.forEach(item => {
        const { dataIndex, contentAlign, children, customCellStyle } = item;
        // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
        if (!dataIndex && children && children.length) {
          formatColumns(children);
          return;
        }

        const groupIndex = groupKeys.findIndex(item => item === dataIndex);
        // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
        if (groupIndex === -1) {
          item.customCell = (record, index) => {
            return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
          };
        } else {
          item.customCell = (record, index) => {
            const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
            const rowSpanList = generateRowSpanList(vid_wd2r1saxfr_options.value(), rowGroupKeys,vid_wd2r1saxfr_props.editRecordMap);
            return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
          };
        }
      })
    }

    // 格式化column：增加合并单元格的配置，以及自定义样式
    formatColumns(columnList);

    return columnList;
  });


    // 表格分页器信息：将总条数信息加到基础分页信息中
    const vid_wd2r1saxfr_pagination = computed(() => {
      const { totalNumber, rt_tableConfig } = vid_wd2r1saxfr_props;
      const {
        enable = true,
        current= 1,
        pageSize= 10,
        showSizeChanger= false,
        pageSizeOptions= '10,20,30,40',
        showTotal= false,
        showQuickJumper= false,
        simple= false,
        hideOnSinglePage= false,
      } = rt_tableConfig.pagination ?? {};
      const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
      let info = {};
      if(enable) {
        info = {
          total: totalNumber || 0,
          pageSize,
          size,
          simple,
          current,
          showSizeChanger,
          pageSizeOptions: pageSizeOptions.split(','),
          showQuickJumper,
          hideOnSinglePage,
          position: [layout],
        }
        if(showTotal) {
          info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
        }
        return info;
      }
      return false;
    })


        // 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
        watch(() => dataConnector_conn_zo10nfnd80_response?.value?.dataList, (newValue) => {
          const current = vid_wd2r1saxfr_props.rt_tableConfig.pagination.current;
          if (!newValue?.length && current > 1) {
            vid_wd2r1saxfr_props.rt_tableConfig.pagination.current = current - 1;
            dataConnector_conn_zo10nfnd80();
          }
        });
  /**
   * 生成分组字段合并单元格的配置：返回值为一个数字数组，数组里面每一项即为该字段当前行的rowSpan配置
   * @param {Array} 表格中的数据
   * @param {Array} 当前分组字段的列表，注：为了保证优先级低的字段合并后是优先级高的字段合并后的子集，需要把比该字段优先级高的分组字段按顺序放在该字段前面；例如：所有分组字段列表为['grade', 'age', 'score']，要生成age字段的合并单元格配置，则该参数需要传['grade', 'age']
   * @returns {Array} 该字段合并单元格的rowSpan配置，例：[1, 1, 2, 0, 1]
   */
  function generateRowSpanList(dataSource, groupKeys,editRecordMap) {
    if (!dataSource || !dataSource.length) {
      return [];
    }

    const rowSpanList = [];

    // 判断单元格是否需要合并的临时值：使用表格数据最后一行进行初始化（表格数据的遍历是倒序进行的）
    let tempValue = getGroupValue(dataSource[dataSource.length - 1], groupKeys);
    // 记录需要合并单元格的数量
    let tempValueCount = 0;

    // 倒序遍历数组，以保证使用最前面一条数据合并单元格
    for (let index = dataSource.length - 1; index >= 0; index--) {
      rowSpanList[index] = 0;
      const groupValue = getGroupValue(dataSource[index], groupKeys);
      // 如果当前行的分组数据跟上一行一致，则将标记数量加一；否则将标记数量的当前值赋给上一条数据，并重置临时值和标记数量
      if(editRecordMap && editRecordMap[index]){ //如果当前行是编辑行
        rowSpanList[index + 1] = tempValueCount;
        tempValue = "";
        tempValueCount=1;
      }
      else if (groupValue === tempValue) {
        tempValueCount++;
      } else {
        rowSpanList[index + 1] = tempValueCount;
        tempValue = groupValue;
        tempValueCount = 1;
      }

      // 遍历到最后一行，将当前的标记数量赋给当前行
      if (index === 0) {
        rowSpanList[index] = tempValueCount;
      }
    }

    return rowSpanList;
  }

  /**
   * 根据分组字段列表生成当前数据行的分组值
   * @param {Object} 当前数据行
   * @param {Array} 分组字段列表
   * @returns {String} 拼装的当前数据行的分组值，例：record为{ age: 7, grade: '一年级', name: '小赵' }，groupKeys为['grade', 'age']，则拼装后的返回值为'一年级__$__7'
   */
  function getGroupValue(record, groupKeys) {
    const groupValueList = [];
    groupKeys.forEach(groupKey => {
      let val = record[groupKey]
      if (isArray(val)) {
        val = record[groupKey + '_labels']
      } else if (isObject(val)) {
        console.warn('警告表格列数据为object，可能导致行合并异常，列key为：'+ groupKey,val)
      }
      groupValueList.push(`${val}`);
    });
    return groupValueList.join('__$__');
  }

  /**
   * 将列表数据转换成树状数据
   * @param {Array} 原始的列表数据
   * @param {String|Number} 列表数据的唯一key
   * @param {String|Number} 列表数据转成树时的父级id
  */
  function convertListToTree(list, key, parentKey) {
    const clonedList = cloneDeep(list || []);

    // 遍历列表数据，生成树节点的map：key为列表数据的唯一key，value为列表当前行的数据
    const treeNodeMap = {};
    clonedList.forEach(item => {
      treeNodeMap[item[key]] = item;
    });

    const treeDataList = [];
    clonedList.forEach(item => {
      // 如果当前行数据的父级id不在树节点的map中，则当前数据为根节点数据，将其加入最终树形数据的列表；否则将其放入其父节点数据的children中
      if (!treeNodeMap[item[parentKey]]) {
        treeDataList.push(item);
      } else {
        if (!treeNodeMap[item[parentKey]].children) {
          treeNodeMap[item[parentKey]].children = [];
        }
        treeNodeMap[item[parentKey]].children.push(item);
      }
    });

    return treeDataList;
  }

  /**
   * 表格列宽伸缩处理，使用indexedDB缓存伸缩后的列宽度
   */
  const handleResizeColumn = (w, col, vid) => {
    col.width = w;
    
    UserTableRecords.saveTableRecords(col, localGet('al__UID'), vid)
    
  }
  /* ========================== 不同组件自定义的处理逻辑 ========================== */


  // ================================定制化逻辑========================================
  const userInfoStorage= localStorage.getItem('al__USER_INFO');
  if(userInfoStorage){
    try {
      const  userInfo  = JSON.parse(userInfoStorage);
      vid_a4l37fbsov_props.value = userInfo.value.name;
    } catch(error) {
      console.log(error)
    }
  }
</script>
<style lang="less" scoped>
  .page_root {
  width: 100%;
  height: 100%;
  overflow: auto;
  }
  .page_root :deep(.@{ant-prefix}-spin-nested-loading),
  .page_root :deep(.@{ant-prefix}-spin-container)
   {
      height: 100%;
  }
  .page_root :deep(.@{ant-prefix}-spin-container .@{ant-prefix}-table-wrapper)
   {
      display: flex;
      flex-flow: column nowrap;
      justify-content: flex-start;
  }
  .page_root :deep(.@{ant-prefix}-table)
   {
    flex: auto;
    overflow: auto;
  }
  .table-moreBtn_down {
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
  }

  .table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
    background: #ebf1ff;
  }

  /*  表格树结构样式处理，展开按钮层级增加*/
  :deep(.@{ant-prefix}-table-row-expand-icon) {
    z-index: 1;
  }
  /*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
  :deep(.@{ant-prefix}-table-row-level-1 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 15px !important;
    width: calc(100% - 15px);
  }
  :deep(.@{ant-prefix}-table-row-level-2 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 30px !important;
    width: calc(100% - 30px);
  }
  :deep(.@{ant-prefix}-table-row-level-3 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 45px !important;
    width: calc(100% - 45px);
  }
  :deep(.@{ant-prefix}-table-row-level-4 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 60px !important;
    width: calc(100% - 60px);
  }

  /* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
  :deep(.@{ant-prefix}-transfer-list)
   {
      height: 100%;
      width: 50%;
  }
  .vid_6xz3x0yerx{
      box-shadow:0px 0px 0px 0px
  }
  .vid_7q9e6sudx3{
      width:100%
  }
  .vid_4356iqyj6d{
      width:100%
  }
  .vid_sf5g7ywj7a{
      display:flex;
      flex-direction:row;
      justify-content:flex-start;
      flex-wrap:undefined;
      margin-bottom:0px
  }
  .vid_1l4gt607tg{
      width:100%
  }
  .vid_y82p2egbmi{
      display:flex;
      flex-wrap:undefined
  }
  .vid_09oyeltabw{
      max-height:600px;
      overflow-x:auto;
      overflow-y:auto
  }
  .vid_28nq1b2smm{
      box-shadow:0px 0px 0px 0px
  }
  .vid_lq4cdlxtwl{
      margin-bottom:0px
  }
  .vid_bi2ptygamn{
      width:100%
  }
  .vid_xmklhis2cv{
      display:flex;
      flex-wrap:undefined
  }
  .vid_btvwfs6gzn{
      margin-right:16px;
      margin-bottom:0px
  }
  .vid_y9392nh2cx{
      width:100%
  }
  .vid_lrxsz8ple6{
      height:600px
  }
  .vid_pbzqm0whoi{
      width:100%;
      max-height:700px;
      overflow-y:auto
  }
  .vid_5oj0bccjlf{
      box-shadow:0px 0px 0px 0px
  }
  .vid_x3v0agbx8s{
      display:flex;
      flex-direction:row;
      justify-content:flex-start;
      flex-wrap:undefined
  }
  .vid_jghxjpcopp{
      width:100%
  }
  .vid_6erfpt4nqq{
      display:flex;
      flex-wrap:undefined
  }
  .vid_d8hn58zxa7{
      display:flex;
      flex-direction:row;
      justify-content:flex-start;
      flex-wrap:undefined
  }
  .vid_pyeum2dmge{
      width:100%
  }
  .vid_jheb06tq01{
      display:flex;
      flex-wrap:undefined
  }
  .vid_dwjydcujjy :deep(a) {
        color: undefined;
      }
      :deep(.vid_dwjydcujjy.@{ant-prefix}-breadcrumb) > span:last-child a {
        color: undefined;
        opacity: 0.75;
      }
  .vid_dwjydcujjy{
      display:flex;
      align-items:center;
      flex-wrap:undefined
  }
  .vid_4fr05rc9x9{
      height:100%;
      overflow-y:auto;
      display:block;
      margin-top:16px;
      padding-top:16px;
      padding-right:24px;
      padding-bottom:16px;
      padding-left:24px;
      background-color:#FFFFFF;
      box-shadow:0px 0px 0px 0px
  }
  .vid_1k41ilaxw9{
      width:100%;
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      background-color:#FFFFFF
  }
  .vid_ozsfdqofi2{
      width:100%;
      display:flex;
      flex-direction:row;
      justify-content:flex-end;
      flex-wrap:undefined
  }
  .vid_qmenr57old{
      color:rgba(255, 255, 255, 1);
      background-color:#3875FF;
      border-style:solid;
      border-width:1px;
      border-color:#3875FF
  }
  .vid_s2ro1sv0zd{
      display:flex;
      align-items:center;
      flex-wrap:undefined
  }
  .vid_neyh0zi2w9{
      padding-left:8px;
      font-weight:600;
      color:rgba(38, 38, 38, 1);
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-thead) > tr {
      height: 40px;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-thead) > tr > th {
    background: #3875FF;
    font-size: 14px;
    font-family: arial, helvetica, "microsoft yahei";
    font-weight: 600;
    color: #FFFFFF;
    border-bottom:1px solid #D9D9D9;
    padding: 8px 16px;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
    border-bottom:1px solid #D9D9D9;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
    border-right:1px solid #D9D9D9;
  }
  /* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
    border-left: none;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
    border-left:1px solid #D9D9D9;
  }
  /* 开启粘性表头后，表格结构会发生变化 需另外处理 */
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
    border-top:1px solid #D9D9D9;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
    border-top:1px solid #D9D9D9;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
      background: #D9D9D9;
      width: 1px;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-cell-scrollbar) {
      box-shadow: none;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-tbody) tr {
    height: 40px;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-tbody) tr > td {
    font-size: 14px;
    font-family: arial, helvetica, "microsoft yahei";
    font-weight: 400;
    color: #262626;
    border-bottom:1px solid #D9D9D9;
    padding: 0 16px;
    word-break: break-all;
    .cell-wrapper {
      padding: 0 16px;
    }
  }

  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
    padding: 0 16px;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
    padding: 0;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
    padding: 0 30px 0 0;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
    padding: 0;
  }
  .vid_wd2r1saxfr :deep(.table-striped-odd) td {
    background-color: #FFFFFF;
  }
  .vid_wd2r1saxfr :deep(.table-striped-even) td {
    background-color: #F8FAFC;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
    border-right:1px solid #D9D9D9;
  }
  .vid_wd2r1saxfr :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
    border-left:1px solid #D9D9D9;
  }
  .vid_wd2r1saxfr{
      width:100%;
      overflow-x:auto;
      overflow-y:auto
  }
  .vid_wd2r1saxfr:active{
      width:100%
  }
  .vid_wd2r1saxfr:focus{
      width:100%
  }
  .vid_wd2r1saxfr:hover{
      width:100%
  }

  :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
   padding: 0;
  }
</style>